/**
 * 节流
 * 每隔一段时间后执行一次，也就是降低频率，将高频操作优化为低频操作，通常使用场景：滚动条时间，resize事件，动画等
 */

function throttle(fn, wait) {
  let timer = null
  return function(...args) {
    if (!timer) {
      timer = settimout(() => {
        fn.apply(this, args)
        timer = null
      }, wait)
    }
  }
}